package com.css.dzj.dzjdzqs.modules.apaction.apforce.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.base.Objects;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Date;


/**
 * 行政强制行为
 * @Author WT
 * @Date 2020/6/28
 */
@Entity
@Table(name = "AP_JGXX_FORCE", schema = "DZJJH", catalog = "")
public class ApForceEntity {
    //主键
    private String forceId;
    //记录唯一标识
    private String recordUniqueIdentity;
    //监管事项目录编码
    private String superviseItemCode;
    //强制行为名称
    private String forceActionName;
    //强制行为编号
    private String forceActionCode;
    //实施机构
    private String implementInstitution;
    //实施机构编码
    private String implementInstitutionCode;
    //监管对象
    private String superviseObject;
    //检查行为编号
    private String checkActionCode;
    //行政相对人（单位/个人）
    private String administrativeCp;
    //行政相对人性质
    private String administrativeCpNa;
    //行政相对人证件类型
    private String administrativeCpCeType;
    //行政相对人(单位/个人)编码
    private String administrativeCpUiCode;
    //注册地址
    private String addressRegistered;
    //经营地址
    private String addressOperating;
    //行政区划代码
    private String areaNumber;
    //违法事实
    private String illegalFact;
    //强制依据
    private String mandatoryBasis;
    //强制决定书号
    private String mandatoryDecisionNumber;
    //行政强制种类
    private String forceType;
    //强制措施类型
    private String coerciveMeasureType;
    //强制执行类型
    private String forceExecutionType;
    //强制结果
    private String mandatoryDecisionPatify;
    //实施强制措施的起始时间
    private Date mandatoryDecisionSevDate;
    //强制措施延长期限
    private String forceExtendDate;
    //实施强制措施的结束时间
    private Date endDate;
    //报送时间
    private Date submittedDate;
    //报送人员
    private String submittedPersonnel;

    @Id
    @Column(name = "FORCE_ID")
    public String getForceId() {
        return forceId;
    }

    public void setForceId(String forceId) {
        this.forceId = forceId;
    }

    @Basic
    @Column(name = "Record_Unique_Identity")
    public String getRecordUniqueIdentity() {
        return recordUniqueIdentity;
    }

    public void setRecordUniqueIdentity(String recordUniqueIdentity) {
        this.recordUniqueIdentity = recordUniqueIdentity;
    }

    @Basic
    @Column(name = "Supervise_Item_Code")
    public String getSuperviseItemCode() {
        return superviseItemCode;
    }

    public void setSuperviseItemCode(String superviseItemCode) {
        this.superviseItemCode = superviseItemCode;
    }

    @Basic
    @Column(name = "Force_Action_Name")
    public String getForceActionName() {
        return forceActionName;
    }

    public void setForceActionName(String forceActionName) {
        this.forceActionName = forceActionName;
    }

    @Basic
    @Column(name = "Force_Action_Code")
    public String getForceActionCode() {
        return forceActionCode;
    }

    public void setForceActionCode(String forceActionCode) {
        this.forceActionCode = forceActionCode;
    }

    @Basic
    @Column(name = "Implement_Institution")
    public String getImplementInstitution() {
        return implementInstitution;
    }

    public void setImplementInstitution(String implementInstitution) {
        this.implementInstitution = implementInstitution;
    }

    @Basic
    @Column(name = "Implement_Institution_Code")
    public String getImplementInstitutionCode() {
        return implementInstitutionCode;
    }

    public void setImplementInstitutionCode(String implementInstitutionCode) {
        this.implementInstitutionCode = implementInstitutionCode;
    }

    @Basic
    @Column(name = "Supervise_Object")
    public String getSuperviseObject() {
        return superviseObject;
    }

    public void setSuperviseObject(String superviseObject) {
        this.superviseObject = superviseObject;
    }

    @Basic
    @Column(name = "Check_Action_Code")
    public String getCheckActionCode() {
        return checkActionCode;
    }

    public void setCheckActionCode(String checkActionCode) {
        this.checkActionCode = checkActionCode;
    }

    @Basic
    @Column(name = "Administrative_Cp")
    public String getAdministrativeCp() {
        return administrativeCp;
    }

    public void setAdministrativeCp(String administrativeCp) {
        this.administrativeCp = administrativeCp;
    }

    @Basic
    @Column(name = "Administrative_Cp_Na")
    public String getAdministrativeCpNa() {
        return administrativeCpNa;
    }

    public void setAdministrativeCpNa(String administrativeCpNa) {
        this.administrativeCpNa = administrativeCpNa;
    }

    @Basic
    @Column(name = "Administrative_Cp_Ce_Type")
    public String getAdministrativeCpCeType() {
        return administrativeCpCeType;
    }

    public void setAdministrativeCpCeType(String administrativeCpCeType) {
        this.administrativeCpCeType = administrativeCpCeType;
    }

    @Basic
    @Column(name = "Administrative_Cp_UI_Code")
    public String getAdministrativeCpUiCode() {
        return administrativeCpUiCode;
    }

    public void setAdministrativeCpUiCode(String administrativeCpUiCode) {
        this.administrativeCpUiCode = administrativeCpUiCode;
    }

    @Basic
    @Column(name = "Address_Registered")
    public String getAddressRegistered() {
        return addressRegistered;
    }

    public void setAddressRegistered(String addressRegistered) {
        this.addressRegistered = addressRegistered;
    }

    @Basic
    @Column(name = "Address_Operating")
    public String getAddressOperating() {
        return addressOperating;
    }

    public void setAddressOperating(String addressOperating) {
        this.addressOperating = addressOperating;
    }

    @Basic
    @Column(name = "Area_Number")
    public String getAreaNumber() {
        return areaNumber;
    }

    public void setAreaNumber(String areaNumber) {
        this.areaNumber = areaNumber;
    }

    @Basic
    @Column(name = "Illegal_Fact")
    public String getIllegalFact() {
        return illegalFact;
    }

    public void setIllegalFact(String illegalFact) {
        this.illegalFact = illegalFact;
    }

    @Basic
    @Column(name = "Mandatory_Basis")
    public String getMandatoryBasis() {
        return mandatoryBasis;
    }

    public void setMandatoryBasis(String mandatoryBasis) {
        this.mandatoryBasis = mandatoryBasis;
    }

    @Basic
    @Column(name = "Mandatory_Decision_Number")
    public String getMandatoryDecisionNumber() {
        return mandatoryDecisionNumber;
    }

    public void setMandatoryDecisionNumber(String mandatoryDecisionNumber) {
        this.mandatoryDecisionNumber = mandatoryDecisionNumber;
    }

    @Basic
    @Column(name = "Force_Type")
    public String getForceType() {
        return forceType;
    }

    public void setForceType(String forceType) {
        this.forceType = forceType;
    }

    @Basic
    @Column(name = "Coercive_Measure_Type")
    public String getCoerciveMeasureType() {
        return coerciveMeasureType;
    }

    public void setCoerciveMeasureType(String coerciveMeasureType) {
        this.coerciveMeasureType = coerciveMeasureType;
    }

    @Basic
    @Column(name = "Force_Execution_Type")
    public String getForceExecutionType() {
        return forceExecutionType;
    }

    public void setForceExecutionType(String forceExecutionType) {
        this.forceExecutionType = forceExecutionType;
    }

    @Basic
    @Column(name = "Mandatory_Decision_Patify")
    public String getMandatoryDecisionPatify() {
        return mandatoryDecisionPatify;
    }

    public void setMandatoryDecisionPatify(String mandatoryDecisionPatify) {
        this.mandatoryDecisionPatify = mandatoryDecisionPatify;
    }

    @Basic
    @Column(name = "Mandatory_Decision_Sev_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getMandatoryDecisionSevDate() {
        return mandatoryDecisionSevDate;
    }

    public void setMandatoryDecisionSevDate(Date mandatoryDecisionSevDate) {
        this.mandatoryDecisionSevDate = mandatoryDecisionSevDate;
    }

    @Basic
    @Column(name = "Force_Extend_Date")
    public String getForceExtendDate() {
        return forceExtendDate;
    }

    public void setForceExtendDate(String forceExtendDate) {
        this.forceExtendDate = forceExtendDate;
    }

    @Basic
    @Column(name = "End_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    @Basic
    @Column(name = "Submitted_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getSubmittedDate() {
        return submittedDate;
    }

    public void setSubmittedDate(Date submittedDate) {
        this.submittedDate = submittedDate;
    }

    @Basic
    @Column(name = "Submitted_Personnel")
    public String getSubmittedPersonnel() {
        return submittedPersonnel;
    }

    public void setSubmittedPersonnel(String submittedPersonnel) {
        this.submittedPersonnel = submittedPersonnel;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ApForceEntity that = (ApForceEntity) o;
        return Objects.equal(forceId, that.forceId) &&
                Objects.equal(recordUniqueIdentity, that.recordUniqueIdentity) &&
                Objects.equal(superviseItemCode, that.superviseItemCode) &&
                Objects.equal(forceActionName, that.forceActionName) &&
                Objects.equal(forceActionCode, that.forceActionCode) &&
                Objects.equal(implementInstitution, that.implementInstitution) &&
                Objects.equal(implementInstitutionCode, that.implementInstitutionCode) &&
                Objects.equal(superviseObject, that.superviseObject) &&
                Objects.equal(checkActionCode, that.checkActionCode) &&
                Objects.equal(administrativeCp, that.administrativeCp) &&
                Objects.equal(administrativeCpNa, that.administrativeCpNa) &&
                Objects.equal(administrativeCpCeType, that.administrativeCpCeType) &&
                Objects.equal(administrativeCpUiCode, that.administrativeCpUiCode) &&
                Objects.equal(addressRegistered, that.addressRegistered) &&
                Objects.equal(addressOperating, that.addressOperating) &&
                Objects.equal(areaNumber, that.areaNumber) &&
                Objects.equal(illegalFact, that.illegalFact) &&
                Objects.equal(mandatoryBasis, that.mandatoryBasis) &&
                Objects.equal(mandatoryDecisionNumber, that.mandatoryDecisionNumber) &&
                Objects.equal(forceType, that.forceType) &&
                Objects.equal(coerciveMeasureType, that.coerciveMeasureType) &&
                Objects.equal(forceExecutionType, that.forceExecutionType) &&
                Objects.equal(mandatoryDecisionPatify, that.mandatoryDecisionPatify) &&
                Objects.equal(mandatoryDecisionSevDate, that.mandatoryDecisionSevDate) &&
                Objects.equal(forceExtendDate, that.forceExtendDate) &&
                Objects.equal(endDate, that.endDate) &&
                Objects.equal(submittedDate, that.submittedDate) &&
                Objects.equal(submittedPersonnel, that.submittedPersonnel);
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(forceId, recordUniqueIdentity, superviseItemCode, forceActionName, forceActionCode, implementInstitution, implementInstitutionCode, superviseObject, checkActionCode, administrativeCp, administrativeCpNa, administrativeCpCeType, administrativeCpUiCode, addressRegistered, addressOperating, areaNumber, illegalFact, mandatoryBasis, mandatoryDecisionNumber, forceType, coerciveMeasureType, forceExecutionType, mandatoryDecisionPatify, mandatoryDecisionSevDate, forceExtendDate, endDate, submittedDate, submittedPersonnel);
    }
}
